package com.yupi.springbootinit.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yupi.springbootinit.model.vo.WorkflowTaskVO;
import com.yupi.springbootinit.model.vo.production.PmcSetupVO;

/**
 * 生产任务查询服务接口
 *
 * 职责：
 * - 任务列表查询（可认领、我的任务、清机任务、生产任务）
 * - 任务详情查询
 * - PMC 设置信息查询
 */
public interface ProductionTaskQueryService {

    /**
     * 分页查询可认领的生产任务
     *
     * @param userId 用户ID
     * @param status 任务状态（支持 ALL）
     * @param current 当前页
     * @param size 每页大小
     * @return 任务分页列表
     */
    Page<WorkflowTaskVO> pageAvailableTasks(Long userId, String status, long current, long size);

    /**
     * 分页查询我的生产任务
     *
     * @param userId 用户ID
     * @param status 任务状态
     * @param current 当前页
     * @param size 每页大小
     * @return 任务分页列表
     */
    Page<WorkflowTaskVO> pageMyProductionTasks(Long userId, String status, long current, long size);

    /**
     * 分页查询清机任务列表
     *
     * @param userId 用户ID
     * @param status 任务状态
     * @param current 当前页
     * @param size 每页大小
     * @return 任务分页列表
     */
    Page<WorkflowTaskVO> pageCleaningTasks(Long userId, String status, long current, long size);

    /**
     * 分页查询生产任务列表
     *
     * @param userId 用户ID
     * @param status 任务状态
     * @param current 当前页
     * @param size 每页大小
     * @return 任务分页列表
     */
    Page<WorkflowTaskVO> pageProductionTasks(Long userId, String status, long current, long size);

    /**
     * 获取任务详情
     *
     * @param taskId 任务ID
     * @return 任务详情VO
     */
    WorkflowTaskVO getTaskDetail(Long taskId);

    /**
     * 获取与任务关联批次的PMC配置（粉末/清机设备）
     *
     * @param taskId 任务ID
     * @return PMC设置VO
     */
    PmcSetupVO getPmcSetup(Long taskId);
}